package org.yege.algorithm.hash;

/**
 * Hash算法接口
 */
public interface Hash {
    /**
     * 添加服务器节点
     * @param nodeName
     */
    public void addServerNode(String nodeName);

    /**
     * 移除服务器节点
     * @param nodeName
     */
    public void removeServerNode(String nodeName);

    /**
     * 根据key值获取命中的服务器节点名称
     * @param key
     * @return
     */
    public String getServerNodeByKey(String key);

    /**
     * fnv1_32_hash算法
     * @param str
     * @return
     */
    public Integer fnv1_32_hash(String str);

    /**
     * 计算服务器节点命中的标准差
     * @return
     */
    public double getStandardDeviation();
}
